home *** CD-ROM | disk | FTP | other *** search
/ SGI Origin & Onyx2 Patches 1998 May / Origin and Onyx2 System Disk Patches May 1998.img / dist / patchSG0002839.idb / usr / include / sys / syssgi.h.z / syssgi.h
C/C++ Source or Header  |  1998-04-01  |  18KB  |  548 lines

  1. /**************************************************************************
  2.  *                                      *
  3.  *          Copyright (C) 1986-1993 Silicon Graphics, Inc.          *
  4.  *                                      *
  5.  *  These coded instructions, statements, and computer programs  contain  *
  6.  *  unpublished  proprietary  information of Silicon Graphics, Inc., and  *
  7.  *  are protected by Federal copyright law.  They  may  not be disclosed  *
  8.  *  to  third  parties  or copied or duplicated in any form, in whole or  *
  9.  *  in part, without the prior written consent of Silicon Graphics, Inc.  *
  10.  *                                      *
  11.  **************************************************************************/
  12.  
  13. #ifndef __SYSSGI_H__
  14. #define __SYSSGI_H__
  15.  
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19.  
  20. #ident "$Revision: 3.160 $"
  21.  
  22. #include <sys/types.h>
  23.  
  24. /*
  25. ** syssgi() system call commands.
  26. */
  27.  
  28. #define SGI_SYSID        1    /* get the system ID */
  29. #define    SGI_TUNE        3    /* change tune values --
  30.                         see sys/tuneable.h */
  31. #define    SGI_IDBG        4    /* access to internal debugger */
  32. #define SGI_INVENT        5    /* hardware inventory */
  33. #define SGI_RDNAME        6    /* get name of process given pid */
  34. #define SGI_SETLED        7    /* set cpu board led state(s) */
  35. #define SGI_SETNVRAM        8    /* set nvram */
  36. #define SGI_GETNVRAM        9    /* get nvram */
  37. #define SGI_QUERY_FTIMER        12
  38. #define SGI_QUERY_CYCLECNTR    13
  39. #define SGI_PROCSZ        14    /* recalc p_size, p_rsssize */
  40.  
  41. /* POSIX signal system calls */
  42. #define SGI_SIGACTION        15
  43. #define SGI_SIGPENDING        16
  44. #define SGI_SIGPROCMASK    17
  45. #define SGI_SIGSUSPEND        18
  46. /* Other POSIX system calls */
  47. #define SGI_SETSID    20
  48. #define SGI_SETPGID    21
  49. #define SGI_SYSCONF    22
  50. #define SGI_WAIT4    23
  51. #define SGI_PATHCONF    24
  52.  
  53.  
  54. /* Block read & Block write system calls: to allow access to > 2 gig
  55.  * of space on a disk or logical volume for large filesystems.
  56.  */
  57. #define SGI_READB    30
  58. #define SGI_WRITEB    31
  59.  
  60. /* setgroups() and getgroups() system calls */
  61. #define SGI_SETGROUPS    40
  62. #define SGI_GETGROUPS    41
  63.  
  64. #define SGI_SETTIMEOFDAY    52    /* set time including microseconds */
  65. #define SGI_SETTIMETRIM        53    /* change crystal trimmer */
  66. #define SGI_GETTIMETRIM        54
  67. #define SGI_SPROFIL        55    /* sprofil(2) entry point */
  68. #define SGI_RUSAGE        56    /* Berkeley's getrusage(2) */
  69. #define SGI_SIGSTACK        57    /* Berkeley's sigstack(2) */
  70. #define SGI_SIGSTATUS        58    /* sgi call to support BSD longjmp */
  71. #define SGI_NETPROC        59    /* start network process */
  72. #define SGI_SIGALTSTACK        60    /* SVR4 sigaltstack(2) */
  73. #define SGI_BDFLUSHCNT        61    /* change bdflushcnt */
  74. #define SGI_SSYNC        62    /* synchronous sync */
  75. #define SGI_NFSCNVT        63    /* convert file handle to descriptor */
  76. #define SGI_GETPGID             64      /* SVR4 getpgid */
  77. #define SGI_GETSID              65      /* SVR4 getsid */
  78. #define SGI_IOPROBE        66    /* I/O probing */
  79. #define SGI_CONFIG        67    /* get configuration data */
  80. #define SGI_ELFMAP        68    /* atomically mmap in an elf dso */
  81. #define SGI_MCONFIG        69    /* loadable module configuration */
  82.  
  83. /*
  84.  * Trusted IRIX system calls
  85.  */
  86. /* mandatory access (MAC) */
  87. #define SGI_GETPLABEL        70    /* Get process label */
  88. #define SGI_SETPLABEL        71    /* Set process label */
  89. #define SGI_GETLABEL        72    /* Get file label -- SGI_MAC_GET */
  90. #define SGI_SETLABEL        73    /* Set file label -- SGI_MAC_SET */
  91. /* audit (SAT) */
  92. #define SGI_SATREAD        74    /* Read audit rec from the kernel */
  93. #define SGI_SATWRITE        75    /* Write audit rec to the kernel */
  94. #define SGI_SATCTL        76    /* Control/query the audit stream */
  95. /* extended attribute handling */
  96. #define SGI_LOADATTR        77    /* Load attributes database */
  97. #define SGI_UNLOADATTR        78    /* Unload attributes database */
  98. /* trusted sockets */
  99. #define SGI_RECVLUMSG        79    /* recvmsg() with label and uid */
  100. /* more extended attribute handling */
  101. #define SGI_PLANGMOUNT        80    /* mount() with PlanG info */
  102. /* trusted sockets with DAC */
  103. #define SGI_GETPSOACL        81    /* Get process socket ACL. */
  104. #define SGI_SETPSOACL        82    /* Set process socket ACL.  */
  105. /* still more extended attribute handling */
  106. #define    SGI_CAP_GET        83    /* Get capability set from file */
  107. #define    SGI_CAP_SET        84    /* Set capability set on file */
  108. #define SGI_PROC_ATTR_GET    85    /* Get the named process attribute */
  109. #define SGI_EAG_GETPROCATTR    SGI_PROC_ATTR_GET    /* Old Name */
  110. #define SGI_PROC_ATTR_SET    86    /* Set the named process attributes */
  111. #define SGI_EAG_SETPROCATTR    SGI_PROC_ATTR_SET    /* Old Name */
  112. #define SGI_REVOKE        87    /* Revoke access to a device */
  113. #define SGI_FREVOKE        SGI_REVOKE        /* Old Name */
  114. #define SGI_ACL_GET        88    /* Get Access Control List(s) */
  115. #define SGI_ACL_SET        89    /* Set Access Control List(s) */
  116. #define SGI_MAC_GET        90    /* Get MAC Label */
  117. #define SGI_MAC_SET        91    /* Set MAC Label */
  118. /*
  119.  * End of Trusted IRIX system calls
  120.  */
  121. #define SGI_SBE_GET_INFO        98      /* get SBE count on a mc3 board*/
  122. #define SGI_SBE_CLR_INFO        99      /* clear SBE count on a mc3 board */
  123. #define SGI_GET_EVCONF        102    /* Get the "evconfig" structure
  124.                      * built by the IP19 prom. */
  125.  
  126. #define SGI_MPCWAROFF        103    /* turn off libmpc WAR handling */
  127. #define SGI_SET_AUTOPWRON    104    /* set auto power on time */
  128. #define SGI_SPIPE        105    /* set stream pipe */
  129. #define SGI_SYMTAB        106    /* get runtime symtab info */
  130. #define    SGI_SET_FP_PRECISE    107    /* set/clear precise FP exception mode*/
  131. #define SGI_TOSSTSAVE        108    /* toss any saved pregions */
  132. #define SGI_FDHI        109    /* return highest valid fd */
  133. #define    SGI_SET_CONFIG_SMM    110    /* set/clear sequential memory mode */
  134. #define    SGI_SET_FP_PRESERVE    111    /* preserve p_fpflags across exec */
  135. #define SGI_MINRSS        112    /* minrss */
  136. #define    SGI_GRIO        113    /* guaranteed rate I/O */
  137. #define    SGI_XLV_SET_TAB        114    /* set incore logical volume config */
  138. #define    SGI_XLV_GET_TAB        115    /* get incore logical volume config */
  139. #define    SGI_GET_FP_PRECISE    116    /* get precise FP exception mode */
  140. #define    SGI_GET_CONFIG_SMM    117    /* get sequential memory mode */
  141. #define    SGI_FP_IMPRECISE_SUPP    118    /* does hw support imprecise mode? */
  142. #define    SGI_CONFIG_NSMM_SUPP    119    /* does hw support non-seq mem mode? */
  143.                     /* 120 and 121 are available */
  144.  
  145. /* Frame Scheduler Timestamping Control */
  146.                         
  147. #define SGI_RT_TSTAMP_CREATE    122 /* create timestamping buffer for specific cpu */
  148. #define SGI_RT_TSTAMP_DELETE    123 /* delete timestamping buffer */
  149. #define SGI_RT_TSTAMP_START     124 /* start logging timestamps */
  150. #define SGI_RT_TSTAMP_STOP      125 /* stop logging timestamps */
  151. #define SGI_RT_TSTAMP_ADDR      126 /* get physical addr for timestamp buffer */
  152. #define SGI_RT_TSTAMP_MASK      127 /* set tstamp mask */
  153. #define SGI_RT_TSTAMP_EOB_MODE  128 /* set end-of-buffer action */
  154.                     
  155. #define    SGI_USE_FP_BCOPY    129    /* should bcopy/bzero use fp? */
  156.  
  157. #define SGI_GET_UST        130    /* get unadjusted system time value */
  158.  
  159. #define SGI_SPECULATIVE_EXEC    131    /* turn speculative execution on/off */
  160.  
  161. #define SGI_XLV_NEXT_RQST    132    /* wait for next xlv configuration
  162.                        request. */
  163. #define SGI_XLV_ATTR_CURSOR    133    /* get cursor for xlv attributes */
  164. #define SGI_XLV_ATTR_GET    134    /* get xlv attribute value */
  165. #define SGI_XLV_ATTR_SET    135    /* set xlv attribute */
  166.  
  167. /* btool - code coverage - only used when compiled with -DBTOOL */
  168. #define SGI_BTOOLSIZE        136
  169. #define SGI_BTOOLGET        137
  170. #define SGI_BTOOLREINIT        138
  171.  
  172. #define    SGI_CREATE_UUID        139    /* create a DCE-defined UUID */
  173.  
  174. /* disable CSR_EXCEPT while in GL address space */
  175. #define SGI_NOFPE        140    /* disable CSR_EXCEPT */
  176.  
  177. #define SGI_OLD_SOFTFP        141    /* use old (asm) softfp code */
  178. #define    SGI_FS_INUMBERS        142    /* xfs get inode number table */
  179. #define    SGI_FS_BULKSTAT        143    /* xfs get stat64 info in bulk */
  180.  
  181. /* more Frame Scheduler calls */
  182. #define SGI_RT_TSTAMP_WAIT    144    /* wait for tstamp buffer to reach 2/3 watermark */
  183. #define SGI_RT_TSTAMP_UPDATE    145     /* update fifo buffer head index */
  184.  
  185. /* things needed by xFS dump and xFS-based DMIG interfaces */
  186. #define    SGI_PATH_TO_HANDLE    146    /* get a file's file handle       */
  187. #define    SGI_PATH_TO_FSHANDLE    147    /* get a file's file system handle */
  188. #define    SGI_FD_TO_HANDLE    148    /* get an open file's file handle  */
  189. #define    SGI_OPEN_BY_HANDLE    149    /* open a file given a file handle */
  190. #define    SGI_READLINK_BY_HANDLE    150    /* read a link using a file handle */
  191.  
  192. #define SGI_READ_DANGID        151    /* Probe for Dang existance */
  193.  
  194. /* Sizing constants used by kmem readers */
  195. #define SGI_CONST        152    /* System sizing constants */
  196. #define SGI_XFS_FSOPERATIONS    153    /* entry of xfs extended operations */
  197.  
  198.  
  199. /* Extended accounting functions */
  200. #define SGI_SETASH        154    /* set array session handle */
  201. #define SGI_GETASH        155    /* get array session handle */
  202. #define SGI_SETPRID        156    /* set project ID */
  203. #define SGI_GETPRID        157    /* get project ID */
  204. #define SGI_SETSPINFO        158    /* set service provider info */
  205. #define SGI_GETSPINFO        159    /* get service provider info */
  206. #define SGI_NEWARRAYSESS    161    /* start new array session */
  207. #define SGI_GETDFLTPRID        162    /* get system default project ID */
  208. #define    SGI_SET_DISMISSED_EXC_CNT 163    /* set dismissed exception count */
  209. #define    SGI_GET_DISMISSED_EXC_CNT 164    /* get dismissed exception count */
  210. /* More cycle counter support */
  211. #define SGI_CYCLECNTR_SIZE    165    /* Size user needs to use to read CC */
  212. #define SGI_QUERY_FASTTIMER    166    /* period of fast itimers in ns */
  213. #define SGI_PIDSINASH        167    /* List PIDs in given array session */
  214. #define SGI_ULI            168
  215.  
  216. /* support for large pages */
  217. #define SGI_LPG_SHMGET          169     /* DBA: use large pages for shared mem */
  218. #define SGI_LPG_MAP             170     /* DBA: use large pages for prog segment */
  219.  
  220. #define SGI_CACHEFS_SYS        171        /* CacheFS system call */
  221. #define SGI_NFSNOTIFY        172        /* lockd client/server failure */
  222. #define SGI_LOCKDSYS        173        /* set lockd options & client name */
  223.  
  224. /*
  225.  * Performance monitoring calls
  226.  */
  227. #define SGI_EVENTCTR            174
  228. #define SGI_GETPRUSAGE          175
  229.  
  230. #define    SGI_PROCMASK_LOCATION    176     /* Used to move p_hold into prda */
  231.  
  232. #define    SGI__UNUSED        177     
  233.  
  234. #define    SGI_CKPT_SYS        178     /* checkpoint/restart system call */
  235. #define    SGI_GETGRPPID        179     /* return a list of pid's for a given group */
  236. #define    SGI_GETSESPID        180     /* return a list of pid's for a given session */
  237.  
  238. #define SGI_ENUMASHS        181    /* return a list of all active ASHs */
  239. #define SGI_SETASMACHID        182    /* set array machine ID */
  240. #define SGI_GETASMACHID        183    /* get array machine ID */
  241. #define SGI_GETARSESS        184    /* retrieve arsess info */
  242. #define SGI_JOINARRAYSESS    185    /* join existing array session */
  243.  
  244. #define SGI_SPROC_KILL        186    /* Send a sync. signal to a sproc */
  245.  
  246. #define SGI_DBA_CONFIG        187    /* DBA: get/set database accelerator features */
  247.  
  248.  
  249. /* similar to uname() system call, but returns "official name" for hardware
  250.  * specific releases from the base release.  Takes a count and pointer
  251.  * to a buffer in which to place the name.  name will be no more than 256
  252.  * characters.
  253. */
  254. #define SGI_RELEASE_NAME    188
  255.  
  256. /* return handler to synchronize icache with dcache */
  257. #define SGI_SYNCH_CACHE_HANDLER 189
  258. #define SGI_SWASH_INIT        190    /* SoftWindows Address Space Helper */
  259.  
  260.  
  261. /*
  262.  * These calls are to support multiple serial numbers for systems built from
  263.  *  SN0/SN0 modules.
  264. */
  265.  
  266. #define SGI_NUM_MODULES        191
  267. #define SGI_MODULE_INFO        192
  268.  
  269. /*
  270.  * Return information about an execution context (uproc, uthread, sthread,
  271.  * ithread, etc.).  These are currently for internal use only.  They may be
  272.  * replaced by a completely new context information facility.
  273.  */
  274. #define SGI_GET_CONTEXT_NAME    193    /* return name */
  275. #define SGI_GET_CONTEXT_INFO    194    /* reserved */
  276.  
  277. /*
  278.  * Partition management.
  279.  */
  280. #define    SGI_PART_OPERATIONS    195    /* Partition management support */
  281.  
  282. /*
  283.  * Swap control
  284.  */
  285. #define SGI_EARLY_ADD_SWAP    197     /* Used to add swap early in boot */
  286.  
  287. /*
  288.  * Numa Memory Management
  289.  */
  290.  
  291. #define SGI_NUMA_MIGR_PAGE    200    /* migrate a page */
  292. #define SGI_NUMA_MIGR_PAGE_ALT    201    /* migrate a page of other processes */
  293.  
  294. #define SGI_KAIO_USERINIT    202    /* DBA: kernel asyncio process initialization */
  295. #define SGI_KAIO_READ        203    /* DBA: kernel asyncio read request */
  296. #define SGI_KAIO_WRITE        204    /* DBA: kernel asyncio write request */
  297. #define SGI_KAIO_SUSPEND    205    /* DBA: kernel asyncio nap till N I/Os complete */
  298. #define SGI_KAIO_STATS        206    /* DBA: kernel asyncio stats collection */
  299.  
  300. /*
  301.  * syscall to get the auxlliary info for a device
  302.  */
  303. #define SGI_IO_SHOW_AUX_INFO   207
  304.  
  305. #define SGI_PMOCTL              208     /* policy control */
  306.  
  307. #define SGI_ALLOCSHARENA    209    /* allocate shared arena & pin pages */
  308. #define SGI_SETVPID        210    /* set vpid in proc structure         */
  309. #define SGI_GETVPID        211    /* get vpid in proc structure         */
  310.  
  311.  
  312. /*
  313.  * Tune NUMA migration related parameters
  314.  */
  315. #define SGI_NUMA_TUNE           212
  316.  
  317.  
  318. #define SGI_INITIAL_PT_SPROC    213    /* make initial proc a pthread sproc */
  319.  
  320. #define SGI_ERROR_FORCE        214    /* Error injection for kernel testing*/
  321.  
  322. /* 
  323.  * syscall for priority IO
  324.  */
  325. #define SGI_PRIO_LOCK           215     /* acquire the lock for priority IO allocation */
  326. #define SGI_PRIO_UNLOCK         216     /* release the lock */
  327. #define SGI_PRIO_QUERY_BW       217     /* query bandwidth allocation */
  328.  
  329. /* numa statictics */
  330. #define SGI_NUMA_STATS_GET      218
  331.  
  332. /*
  333.  * syscall for data pipe file system pipe end 
  334.  */
  335. #define SGI_DPIPE_FSPE_BIND     219     /* bind a scatter gather list with
  336.                        a (pipe_id, transfer_id) pair. */
  337.  
  338. #define SGI_ROUTERSTATS_ENABLED 231     /* access to state of 
  339.                         gather_craylink_routerstats */
  340.  
  341. #define SGI_IS_DEBUG_KERNEL    300    /* is this a debug kernel? */
  342. #define SGI_IS_TRAPLOG_DEBUG_KERNEL 301    /* is this a TRAPLOG debug kernel? */
  343.  
  344. #define SGI_FO_DUMP             400
  345. #define SGI_FO_SWITCH           401
  346.  
  347. /* 
  348.  * 1000 - 1004 are reserved for NUMA Memory Management tests
  349.  */
  350.  
  351. /* testing hooks for NUMA simulation on Everest */
  352. #define SGI_NUMA_MIGR_INT_VADDR  1100
  353. #define SGI_NUMA_MIGR_INT_PFN     1101
  354. #define SGI_NUMA_PAGEMIGR_TEST   1102
  355. #define SGI_NUMA_TESTS           1103
  356. #define SGI_NUMA_RESERVED        1104
  357.  
  358.    
  359. /* Flags needed for SGI_NUMA_PAGEMIGR_TEST syscall */
  360. #define VA_PROC 0
  361. #define VA_INTR 1
  362. #define PA_PROC 2
  363. #define PA_INTR 3
  364.  
  365. /*
  366.  * The following are needed for
  367.  * implementing syssgi() calls
  368.  * involving very large pages.
  369.  */
  370. /* values for arg4 of SGI_LPG_SHMGET */
  371. #define SGI_LPG_256K            1
  372. #define SGI_LPG_1M              2
  373. #define SGI_LPG_4M              3
  374. #define SGI_LPG_16M             4
  375.  
  376. /* flag (arg5 of SGI_LPG_SHMGET) indicating tlbwire or not */
  377. #define SGI_LPG_WIRE            1
  378.  
  379.  
  380. #define SGI_PHYSP        1011    /* get phys pgno for vaddr */
  381.  
  382. /*
  383.  * kernel threads temporary
  384.  */
  385.  
  386. #define    SGI_KTHREAD        1012
  387.  
  388. /*reserved            1020*/
  389.  
  390. /*
  391.  * Allocate a large page.
  392.  */
  393.  
  394. #define    SGI_DEBUGLPAGE        1030
  395.  
  396. /*
  397.  * Map the address space of a process to a different page size.
  398.  */
  399.  
  400. #define    SGI_MAPLPAGE        1031
  401.  
  402.  
  403. #ifdef DEBUG
  404. #define SGI_MUTEX_TEST         1040
  405. #define SGI_MUTEX_TEST_INIT     1041
  406. #define SGI_MUTEX_TESTER_INIT     1042
  407. #endif
  408.  
  409. /*
  410.  * CA UniCenter entry point.
  411.  */
  412. #define SGI_UNICENTER           1053
  413.  
  414. /*
  415.  * kernel pathconf() must know whether called by fpathconf or 
  416.  * pathconf--i.e how to interpret the 1st parameter.  (It is not
  417.  * currently used at all, but may be in the future.)
  418.  */
  419. #define PATHCONF    1
  420. #define FPATHCONF    2
  421.  
  422.  
  423. #define    GET_SYSID    SGI_SYSID    /* compatability */
  424. #define    MAXSYSIDSIZE    64    /* maximum size in bytes of the system id   */
  425.  
  426. /* hardware inventory options */
  427. #define SGI_INV_SIZEOF    1    /* get sizeof inventory struct */
  428. #define SGI_INV_READ    2    /* read inventory table */
  429.  
  430. /* configuration data options */
  431. #define ADAP_READ     1
  432. #define ADD_NODE      2
  433. #define DELETE_NODE      3
  434. #define GET_NODE      4
  435.  
  436. /* IO probe directions */
  437. #define IOPROBE_READ    0
  438. #define IOPROBE_WRITE    1
  439.  
  440. /* nvram options */
  441. #define SGI_NVSTRSIZE    128    /* Not perfect, but reasonable size. */
  442.  
  443. /* SGI_MINRSS options */
  444. #define MINRSS_ADDPNAME        1
  445. #define MINRSS_DELPNAME        2
  446. #define MINRSS_LISTPNAME    3
  447. #define MINRSS_ADDVNODE        4
  448. #define MINRSS_DELVNODE        5
  449. #define MINRSS_LISTVNODE    6
  450. /* struct for LISTPNAME */
  451. #define MINRSS_PNAMESZ        20
  452. struct getpname {
  453.     char g_name[MINRSS_PNAMESZ];
  454.     pgno_t g_minrss;
  455. };
  456. /* struct for LISTVNODE */
  457. struct getvnode {
  458.     dev_t g_fsid;
  459.     ino_t g_nodeid;
  460.     pgno_t g_minrss;
  461. };
  462.  
  463. #ifdef _KERNEL
  464. struct irix5_getvnode {
  465.     __int32_t g_fsid;
  466.     __uint32_t g_nodeid;
  467.     __int32_t g_minrss;
  468. };
  469. #endif
  470.  
  471. /* EXTENDED MEMORY operations (though sgifastpath syscall)
  472.  * Intended to be used by the HIPPI controller to provide a fastpath for
  473.  * low latency memory operations.  Device driver will specify a range of
  474.  * addresses which the user can read/write using the following syssgi calls.
  475.  */
  476. #define SGIFAST_PIOMEM_BREAD32    0    /* extended memory block read */
  477. #define    SGIFAST_PIOMEM_BWRITE32    1    /* extended memory block write */
  478. #define    SGIFAST_PIOMEM_NULL    2    /* extended memory NOP */
  479.  
  480. /*
  481.  * SGI_CONST parameters
  482.  */
  483. #define SGICONST_MBUF        1    /* Mbuf */
  484. #define SGICONST_PTE        2    /* Pte */
  485. #define SGICONST_PAGESZ        3    /* _PAGESZ */
  486. #define SGICONST_PARAM        4    /* Param */
  487.  
  488. /* SGI_ULI options */
  489. enum {
  490.     /* These options are used from the top half of a process, i.e. they
  491.      * are ordinary system calls
  492.      */
  493.  
  494.     ULI_SLEEP,
  495.     ULI_DEBUG,
  496.     ULI_SET_DEBUG_SIG,
  497.  
  498.     /* These options are used from the bottom half of the process, i.e.
  499.      * they are interrupt mode calls
  500.      */
  501.  
  502.     ULI_RETURN,
  503.     ULI_CPUID,
  504.     ULI_WAKEUP,
  505.     ULI_CONWRITE,
  506.  
  507.     ULI_MAXCALL
  508. };
  509.  
  510. /*
  511.  * SGI_PROCMASK_LOCATION options
  512.  */
  513. #define USER_LEVEL    1
  514. #define KERNEL_LEVEL    2
  515.  
  516. #if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS)
  517. #ifndef _KERNEL
  518. #include <stddef.h>
  519. extern ptrdiff_t syssgi(int, ...);
  520. #endif /* !_KERNEL */
  521. #endif
  522.  
  523. #if _KERNEL
  524. #include <sys/systm.h>
  525.  
  526. struct syssgia {
  527.     sysarg_t cmd;
  528.     sysarg_t arg1, arg2, arg3, arg4, arg5, arg6, arg7;
  529. };
  530.  
  531. extern int syssgi(struct syssgia *, rval_t *);
  532.  
  533. /* procscan parameters for findash */
  534. struct findashinfo {
  535.     ash_t    ash;
  536.     pid_t    *useraddr;
  537.     int    usermax;
  538.     int    count;
  539.     int    current;
  540.     int    errno;
  541. };
  542. #endif    /* _KERNEL */
  543.  
  544. #ifdef __cplusplus
  545. }
  546. #endif
  547. #endif /* __SYSSGI_H__ */
  548.